package com.elpebe.sysabk.repository;

import java.util.List;

import org.springframework.data.domain.Page;

import com.elpebe.sysabk.model.PersistentObject;

public interface IOperations<T extends PersistentObject> {

    // read - one
    T findOne(final long id);

    // read - all
    List<T> findAll();

    Page<T> findPaginated(int page, int size);

    // write
    T create(final T entity);

    T update(final T entity);

    void delete(final Long id);

    void deleteById(final long entityId);

}
